TSPD: Register preempted SMC error code with EHF
authorJeenu Viswambharan <[email protected]>
Mon, 22 Jan 2018 12:42:54 +0000 (12:42 +0000)
committerJeenu Viswambharan <[email protected]>
Tue, 27 Feb 2018 13:46:40 +0000 (13:46 +0000)
An earlier patch extended ehf_allow_ns_preemption() API to also register
an error code to offer to Non-secure when a Yielding SMC is preempted by
SDEI interrupt. In TSPD's case, register the error code TSP_PREEMPTED.

Change-Id: I31992b6651f80694e83bc5092b044ef7a3eda690
Signed-off-by: Jeenu Viswambharan <[email protected]>
services/spd/tspd/tspd_main.c

index c564f8b8670a5b26c0cb192b5529929705bcfbbc..3d06e0b81d7d142b677689b9f18dbffed36cd133 100644 (file)
@@ -549,9 +549,10 @@ uint64_t tspd_smc_handler(uint32_t smc_fid,
                                 * preempt Secure execution. However, for
                                 * yielding SMCs, we want preemption to happen;
                                 * so explicitly allow NS preemption in this
-                                * case.
+                                * case, and supply the preemption return code
+                                * for TSP.
                                 */
-                               ehf_allow_ns_preemption();
+                               ehf_allow_ns_preemption(TSP_PREEMPTED);
 #endif
                        }
 
@@ -662,9 +663,10 @@ uint64_t tspd_smc_handler(uint32_t smc_fid,
 #if EL3_EXCEPTION_HANDLING
                /*
                 * Allow the resumed yielding SMC processing to be preempted by
-                * Non-secure interrupts.
+                * Non-secure interrupts. Also, supply the preemption return
+                * code for TSP.
                 */
-               ehf_allow_ns_preemption();
+               ehf_allow_ns_preemption(TSP_PREEMPTED);
 #endif
 
                /* We just need to return to the preempted point in